home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 004 / mathstat.arc / M20.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-11-14  |  1.0 KB  |  45 lines

  1. 0  CLS:PRINT
  2. 10   PRINT "ROOTS OF POLYNOMIALS: HALF-INTERVAL SEARCH"
  3. 20   PRINT 
  4. 30  DEF FNR(X)=4*X^4-2.5*X^2-X+0.5: REM  - ENTER FUNCTION (DEFFNR(X)="FUNCTION") HERE
  5. 40   DIM D(3)
  6. 50   PRINT "(TO END SEARCH ENTER 0,0)"
  7. 60   PRINT "INTERVAL (LOWER,UPPER LIMIT)";
  8. 70   INPUT A,B
  9. 80   IF A <  > B THEN 120
  10. 90   IF A = 0 THEN 430
  11. 100   PRINT "--INTERVAL LIMITS CAN'T BE EQUAL!--"
  12. 110   GOTO 60
  13. 120   IF A < B THEN 150
  14. 130   PRINT "--LOWER LIMIT MUST BE ENTERED FIRST!--"
  15. 140   GOTO 60
  16. 150  A1 =  SGN ( FNR(A))
  17. 160  B1 =  SGN ( FNR(B))
  18. 170   IF A1 * B1 = 0 THEN 360
  19. 180   IF A1 * B1 < 0 THEN 280
  20. 190   FOR I = 1 TO 1000
  21. 200  X = A +  RND (2) * (B - A)
  22. 210  X1 =  SGN ( FNR (X))
  23. 220   IF X1 = 0 THEN 400
  24. 230   IF A1 * X1 < 0 THEN 270
  25. 240   NEXT I
  26. 250   PRINT "NO CHANGE OF SIGN FOUND"
  27. 260   GOTO 60
  28. 270  B = X
  29. 280  D(2 + A1) = A
  30. 290  D(2 - A1) = B
  31. 300  Y = (D(1) + D(3)) / 2
  32. 310  Y1 =  SGN ( FNR (Y))
  33. 320   IF Y1 = 0 THEN 400
  34. 330  D(2 + Y1) = Y
  35. 340   IF  ABS (D(1) - D(3)) /  ABS (D(1) +  ABS (D(3))) < 4.999E-06 THEN 400
  36. 350   GOTO 300
  37. 360   IF A1 = 0 THEN 390
  38. 370  Y = B
  39. 380   GOTO 400
  40. 390  Y = A
  41. 400   PRINT "ROOT = ";Y
  42. 410   PRINT 
  43. 420   GOTO 60
  44. 430   RUN "MATH"
  45.